const router = require('express').Router()
const R = require('ramda')
const U = require('../utils')

function is_not_nil(){
  return R.compose(R.not,R.isNil)
}

function get_in_body(prop){
  return R.path(['body',prop])
}

function is_in_body(prop){
  return R.compose(is_not_nil(),get_in_body(prop))
}

function params_exist(req,res,next){
  if(R.and(is_in_body('name'),is_in_body('pass'))(req)){
    next()
  }else{
    res.json(U.err('请提供用户名和密码'))
    return
  }
}

function user_exist(req,res,next){
  if(req.body.name == 'kobako'){
    next()
  }else{
    res.json(U.err('该用户不存在'))
    return
  }
}

function pass_ture(req,res,next){
  if(req.body.name == 'kobako' && req.body.pass == '123'){
    next()
  }else{
    res.json(U.err('密码不正确'))
    return
  }
}

function set_session(req,res,next){
  req.session.name = req.body.name
  next()
}

function res_ok(req,res,next){
  res.json(U.ok('登陆成功'))
}

function is_logined(req,res,next){
  if(is_not_nil()(req.session.name)){
    console.log('已登录')
    res.json(U.ok('您已登录'))
    return
  }
  next()
}

router.route('/')
 .post(is_logined)
 .post(params_exist,user_exist,pass_ture,set_session,res_ok)

module.exports = router